﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Entidades;

namespace AccesoADatos
{
    public class RepuestoDAO
    {
        public static SqlConnection conexion = AccesoBD.getConexion();

        public static List<Repuesto> getRepuesto(string rubro, string marca)
        {
            List<Repuesto> listRepuesto = new List<Repuesto>();
            conexion.Close();
            conexion.Open();

            string query = " select r.codigo, r.imagen, r.descripcion as repuesto, m.marca, r.precio , ru.descripcion as rubro "+
                    " from dbo.REPUESTO_POR_MARCA rm, dbo.REPUESTO r, dbo.MARCA_AUTO m, dbo.RUBRO_REPUESTO ru "+
                    " where rm.codigo_repuesto = r.codigo "+
                    " and rm.id_marca_auto = m.id_marca_auto "+
                    " and ru.id_rubro = r.id_rubro ";

            if (rubro != null && rubro.Trim() != "")
            {
                query += " and ru.descripcion = @rubro ";
            }

            if (marca != null && marca.Trim() != "")
            {
                query += " and m.marca = @marca ";
            }

            SqlCommand cmd = new SqlCommand(query, conexion);

            if (marca != null && marca.Trim() != "")
            {
                cmd.Parameters.AddWithValue("marca", marca);
            }
            if (rubro != null && rubro.Trim() != "")
            {
                cmd.Parameters.AddWithValue("rubro", rubro);
            }

            SqlDataReader dr = cmd.ExecuteReader();

            while (dr.Read())
            {

                Repuesto repuesto = new Repuesto();
                repuesto.codigoRepuesto = Convert.ToInt32(dr["codigo"].ToString());
                repuesto.descripcion = dr["repuesto"].ToString();
                repuesto.precio = Convert.ToDouble(dr["precio"].ToString());
                repuesto.rubro = dr["rubro"].ToString();
                repuesto.marca = dr["marca"].ToString();
                repuesto.imagen = (Byte[])dr["imagen"];

                listRepuesto.Add(repuesto);
            }
            conexion.Close();
            return listRepuesto;
        }
    }
}
